Write amplification is a term used to describe a technical problem associated with types of non-volatile memory to include, but not limited to, NAND flash memory used in solid state drives (SSDs). Write amplification is described as a ratio of writes committed to non-volatile memory at an SSD to writes coming from a host computing platform. A ratio or write amplification value of around 1.0 is ideal when not employing data compression techniques. Typically, writes to non-volatile memory at the SSD may be done on a relatively small portion of non-volatile memory such as a 4 kilobyte (KB) page. However, non-volatile types of memory such as NAND flash memory erase much larger portions commonly referred to as blocks when erasing data stored in memory cells before rewriting data to these memory cells. An erasable block may include 64 or more pages (256 KB). Due to this disparity, a technique known as garbage collection may be used if data in some pages of a block are no longer needed (e.g., invalid/stale) and then valid or good data may be rewritten into another previously erased empty block. Higher amounts of garbage collection lead to higher vales for write amplification.
Write amplification may not be an issue for a single sequential write stream that results in sequential writes to pages included in a first block and then moving to a second block when all the pages in the first block are written to. Also, memory capacity for an SSD may be arranged in a manner such that once the single sequential write stream reaches an end of a sequence of blocks, the write stream wraps around or loops back to a beginning of the sequence. In some examples, if a sufficient memory capacity is available, by the time the single sequential write stream wraps around, the data written to pages for blocks at the beginning of the sequence all have become invalid or stale. In other words, no garbage collection is needed and a write amplification of 1.0 may be maintained.
Write amplification, however, may be an issue for random writes to the SSD. Random writes may result in a higher incidence of blocks being partially invalidated when a random write stream eventually wraps around and potentially large amounts of garbage collection may be needed to rewrite valid or good data to reclaim this valid data. Random writes to the SSD may result in a worse case write amplification for the SSD. High write amplification may reduce write performance for the SSD and may also increase wear on non-volatile memory cells that then leads to degraded endurance.